昨天已經把虛擬環境建立完成,今天就趕快來產生我們的第一個 Django 資料夾
貼心小提醒,每一次重開檔案,都要進入確認有進入虛擬環境喔,我這邊就不重複輸入指令了
首先確認自己有在昨天新增的 djangoBoy
資料夾中
$ pwd
------
# /Users/使用者ID/Desktop/djangoBoy
確定自己在虛擬環境裡面後,在虛擬環境中安裝 django
$ pip install django
------
Collecting django
Using cached Django-4.2.4-py3-none-any.whl (8.0 MB)
Collecting asgiref<4,>=3.6.0 (from django)
Using cached asgiref-3.7.2-py3-none-any.whl (24 kB)
Collecting sqlparse>=0.3.1 (from django)
Using cached sqlparse-0.4.4-py3-none-any.whl (41 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.7.2 django-4.2.4 sqlparse-0.4.4
看到 Django
就代表成功安裝
$ pip list
------
Package Version
---------- -------
asgiref 3.7.2
Django 4.2.4
pip 23.1.2
setuptools 65.5.0
sqlparse 0.4.4
$ django-admin startproject store
這個語法就類似 ROR 的
rails new product_name
,他會一次幫你生出很多預設的基礎檔案
那個 store 就是我們剛剛建立的基礎骨架資料夾,我們進去看一下剛剛那個指令都幫我生成了哪些檔案
$ ls
------
store virtualenv
打開資料夾,可以發現新生成的檔案架構長下面這樣
store/
manage.py
store/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
這些目錄和文件的用途是:
最後就來實際啟動 server
~
$ cd store
$ python3 manage.py runserver
------
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 24, 2023 - 07:43:13
Django version 4.2.2, using settings 'store.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
記得要先進到裡面一層,再輸入 runserver
才會開啟本地伺服器喔!有沒有發現這個指令就是去呼叫 manage.py
,還記得我們前面說 manage.py
的功能嗎?他就是在幫我們執行一些指令!!
執行後,你應該會在終端機看到一些提示字,主要是在建議你執行一些指令,這個我們等等再說,在瀏覽器輸入 http://127.0.0.1:8000/
應該可以看到一個火箭準備飛天的護面,就代表成功啟動 server
這個如果是初學者,可能會不知道我們在幹嘛,先不用急,我們之後在 model 那邊再提到一次,不過如果是上過之前有寫過 ROR
的,應該很清楚我們接下來要做的事情~
還記得剛剛啟動 SERVER 他有給你一串資訊嗎?如果有仔細看的人,應該知道他其實就是在跟你說,你現有幾個 migration
尚未具現化,所以他在提醒你要記得執行,這邊會有這們多的未執行的 migration
是因為一開始我們那一道指令 django-admin startproject store
,他幫你一起產生的
$ python3 manage.py migrate
------
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
Ps. 這時候你在重新啟動 Server 的話,就會發現剛剛的訊息不見了~
這指令其實就像
rails db:migrate
一樣,可以直接生成一大堆表單,不過Django
的表單生成,其實是兩步驟,原因我們到model
那一章節再說~
今天學到哪些東西呢?
最後附上 Github: https://github.com/eagle0526/Django-store
之後每天的程式修改我都會更新上去,想要的人直接下載下來就好